﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	///<summary>
	///(Общ)
	///</summary>
	[DataContract]
	public enum ВидыОперацийКорректировкаДолга
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
	///<summary>
	///(Общ)
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"0aa40ea0-da58-4d05-85fe-dc529abf0830\", \"Представление\":\"ПроведениеВзаимозачета\"}")]
		ПроведениеВзаимозачета = 0,//проведение взаимозачета
	///<summary>
	///(Общ)
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"34128848-9461-487d-94ad-c76d084fb308\", \"Представление\":\"ПереносЗадолженности\"}")]
		ПереносЗадолженности = 1,//перенос задолженности
		[EnumMember(Value = "{\"Ссылка\":\"01cce27d-cc72-403a-a78a-412a617e3582\", \"Представление\":\"СписаниеЗадолженности\"}")]
		СписаниеЗадолженности = 2,//списание задолженности
	}
	public static partial class ВидыОперацийКорректировкаДолга_Значения//:ПеречислениеСсылка
	{
		///<summary>
		///(Общ)
		///</summary>
		public static readonly Guid ПроведениеВзаимозачета = new Guid("52dcfe85-bf9a-3008-4d05-da580aa40ea0");//проведение взаимозачета
		///<summary>
		///(Общ)
		///</summary>
		public static readonly Guid ПереносЗадолженности = new Guid("6dc7ad94-4f08-08b3-487d-946134128848");//перенос задолженности
		public static readonly Guid СписаниеЗадолженности = new Guid("2a418aa7-7e61-8235-403a-cc7201cce27d");//списание задолженности
		public static ВидыОперацийКорректировкаДолга Получить(this ВидыОперацийКорректировкаДолга Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ВидыОперацийКорректировкаДолга Получить(this ВидыОперацийКорректировкаДолга Значение, Guid Ссылка)
		{
			if(Ссылка == ПроведениеВзаимозачета)
			{
				return ВидыОперацийКорректировкаДолга.ПроведениеВзаимозачета;
			}
			else if(Ссылка == ПереносЗадолженности)
			{
				return ВидыОперацийКорректировкаДолга.ПереносЗадолженности;
			}
			else if(Ссылка == СписаниеЗадолженности)
			{
				return ВидыОперацийКорректировкаДолга.СписаниеЗадолженности;
			}
			return ВидыОперацийКорректировкаДолга.ПустаяСсылка;
		}
		public static byte[] Ключ(this ВидыОперацийКорректировкаДолга Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ВидыОперацийКорректировкаДолга Значение)
		{
			switch (Значение)
			{
				case ВидыОперацийКорректировкаДолга.ПроведениеВзаимозачета: return ПроведениеВзаимозачета;
				case ВидыОперацийКорректировкаДолга.ПереносЗадолженности: return ПереносЗадолженности;
				case ВидыОперацийКорректировкаДолга.СписаниеЗадолженности: return СписаниеЗадолженности;
			}
			return Guid.Empty;
		}
	}
}